/*
用两个栈实现一个队列。队列的声明如下，请实现它的两个函数 appendTail 和 deleteHead ，
分别完成在队列尾部插入整数和在队列头部删除整数的功能。
(若队列中没有元素，deleteHead 操作返回 -1 )
*/
#include <stack>
#include <iostream>

using namespace std;

class CQueue {
private:
    stack<int> in;
    stack<int> out;

    void in2out() {
        while (!in.empty()) {
            out.push(in.top());
            in.pop();
        }
    }

public:
    CQueue() {}

    void appendTail(int x) {
        in.push(x);
    }

    int deleteHead() {
        if (out.empty()) {
            if (in.empty()) {
                return -1;
            }
            in2out();
        }

        int x = out.top();
        out.pop();
        return x;
    }
};

int main() {
    CQueue q;
    q.appendTail(1);
    q.appendTail(2);

    cout << q.deleteHead() << endl;
    cout << q.deleteHead() << endl;

    return 0;
}